﻿<!DOCTYPE HTML>
<html lang="zh">
<head>
<title>OnClipboardChange - 语法 &amp; 使用 | AutoHotkey v2</title>
<meta name="description" content="The OnClipboardChange function causes the specified function to be called automatically whenever the clipboard's content changes." />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<link href="../static/theme.css" rel="stylesheet" type="text/css" />
<script src="../static/content.js" type="text/javascript"></script>
</head>
<body>

<h1>OnClipboardChange</h1>

<p>每当剪贴板内容发生改变时, 导致指定的函数被自动调用.</p>

<pre class="Syntax"><span class="func">OnClipboardChange</span> Function <span class="optional">, AddRemove</span></pre>
<h2 id="Parameters">参数</h2>
<dl>

  <dt>Function</dt>
  <dd>
    <p>类型: <a href="../misc/Functor.htm">函数对象</a></p>
    <p>要调用的函数. 函数的参数和返回值描述<a href="#Function">如下</a>.</p>
  </dd>
  
  <dt>AddRemove</dt>
  <dd>
    <p>类型: <a href="../Concepts.htm#numbers">整数</a></p>
    <p>如果省略, 则默认为 1(在任何先前的注册函数之后调用该函数). 否则, 指定下列数字之一:</p>
    <ul>
      <li>1 = 在任何先前的注册函数之后调用该函数.</li>
      <li>-1 = 在任何先前的注册函数之前调用该函数.</li>
      <li>0 = 不调用该函数.</li>
    </ul>
  </dd>

</dl>

<h2 id="Function">Function</h2>
<p>函数应该接受一个参数:</p>
<pre class="Syntax"><i>FunctionName</i>(Type)</pre>
<dl>
  <dt>Type</dt>
  <dd>
    <p>类型: <a href="../Concepts.htm#numbers">整数</a></p>
    <p>下列数字之一:</p>
    <ul>
      <li>0 = 剪贴板为空.</li>
      <li>1 = 剪贴板包含可以用文本表示的内容(包括从资源管理器窗口<a href="A_Clipboard.htm#CopiedFiles">复制的文件</a>).</li>
      <li>2 = 剪贴板包含完全是非文本的内容, 如图片.</li>
    </ul>
  </dd>
</dl>

<h3 id="Return_Value">返回值</h3>
<p>如果这是最近的或唯一的 OnClipboardChange 函数, 其返回值会被忽略. 否则, 此函数会返回一个非零整数来阻止随后的函数被调用.</p>

<h2 id="Remarks">备注</h2>
<p>如果剪贴板在 OnClipboardChange 函数已经运行时发生更改, 则剪贴板通知事件会丢失. 如果不希望这样, 请使用 <a href="Critical.htm">Critical</a>. 不过, 这样做也会缓冲/延迟 OnClipboardChange 线程运行时发生的其他<a href="../misc/Threads.htm">线程</a>(例如按下热键).</p>
<p>如果是脚本本身改变了剪贴板内容, 脚本中的 OnClipboardChange 函数或标签通常不会立即执行; 也就是说紧接在改变剪贴板函数后面的函数就像提前运行了一样. 要强制立即执行这个函数, 请在改变剪贴板内容后使用短暂的延迟, 例如 <code><a href="Sleep.htm">Sleep</a> 20</code>.</p>

<h2 id="Related">相关</h2>
<p><a href="A_Clipboard.htm">A_Clipboard</a>, <a href="OnExit.htm">OnExit</a>, <a href="OnMessage.htm">OnMessage</a>, <a href="CallbackCreate.htm">CallbackCreate</a></p>

<h2 id="Examples">示例</h2>
<div class="ex" id="ExBasic">
<p><a class="ex_number" href="#ExBasic"></a> 在每次剪贴板更改时简要显示工具提示.</p>
<pre>OnClipboardChange ClipChanged

ClipChanged(clip_type) {
    ToolTip "剪贴板数据类型: " clip_type
    Sleep 1000
    ToolTip  <em>; 关闭工具提示.</em>
}</pre>
</div>

</body>
</html>